package Z.dailyExercise.March;

import java.util.Arrays;

public class _621任务调度器 {
    /**
     * 题解：安排重复最多的  其他的往里插入
     * 因此 实际上可以看做根据最多的制作桶 其余的元素挨个往里放 并且是逐个桶
     */
    public int leastInterval(char[] tasks, int n) {
        int[] bucket = new int[26];
        for (char ch :tasks){
            bucket[ch -'A']++;
        }

        Arrays.sort(bucket);
        int maxTime = bucket[25];
        int lastRound = 1;

        for (int i=25;i>=1;i++){
            if (bucket[i] == bucket[i-1]){
                lastRound++;
            }else {
                break;
            }
        }

        int res = (maxTime-1)*(n+1) + lastRound;
        return Math.max(res,tasks.length);
    }


}
